<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        // includes() 方法用来判断一个数组是否包含一个指定的值，
        // 根据情况，如果包含则返回 true，否则返回 false
        // includes(searchElement, fromIndex) //可选索引
        const list = [{
            msg: 'Bruce Leez'
        }, {
            msg: 'Jackie Chanz'
        }, {
            msg: 'Chuck Norrisz'
        }, {
            msg: 'Jet Liz'
        }, {
            msg: 'Kung Fury'
        }];

        // 在对象中使用这个函数 是筛选出所有带Z的字符串
        const newarr = list.filter((item) =>
            item.msg.toLowerCase().includes('j'))

        console.log(newarr);

        const pets = ['cat', 'dog', 'bat'];
        console.log(pets.includes('cats'));

        var arr = [1, 2, 3, 4];
        arr.includes(1, -1); //false
        arr.includes(1, -4); //true
        // 从fromIndex 索引处开始查找 如果为负值，
        // 则按升序从 array.length + fromIndex 的索引开始搜
        // （即使从末尾开始往前跳 fromIndex 的绝对值个索引，然后往后搜寻）。默认为 0。
        // 第1题: arr.includes(1,4+(-1)) => arr.includes(1,1)也就是从索引3开始,false
        // 第二题：arr.include(1，4+(-4))=>arr.include(2，0)也就是从索引0开始，找到元素返回true
        // indexOf() 方法返回在数组中可以找到给定元素的第一个索引，如果不存在，则返回 -1。
        // indexOf(searchElement, fromIndex)

        const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

        console.log(beasts.indexOf('bison'));
        // expected output: 1

        // start from index 2
        console.log(beasts.indexOf('bison', 2));
        // expected output: 4

        console.log(beasts.indexOf('giraffe'));
        // expected output: -1
    </script>
</body>

</html>